Multi-core in the Source Engine

Written by Wil Harris

November 2, 2006 | 04:18

Tags: #benchmark #core-2-duo #core-2-quad #directx-10 #download #gabe-newell #half-life-2 #kentsfield #multi-core

Companies: #intel #valve

Applications

What can this mean to gamers? There are a number of ways that threading provides benefits to gamers, and on a number of levels.

Hybrid rendering: One example is in calculating what is going to be rendered, and this relies on a critical part of the Steam engine, the 'world list'. "We first have to figure out - what are the areas of the BSP that you're going to render? Then, okay, what objects are in those portions? Up until the point that you're actually going to draw them, you're CPU bound. You have to work out all these calculations from multiple points of view - the player's view, then say, the view of TV monitors in the scene, then the point of view of reflections in water."

"To apply a hybrid threading model, we revised the pipeline. Now, we construct the rendering list from the world list in parallel - we can calculate the TV, water and player rendering lists at the same time across cores. We can then do things like running all the character bone transforms across the cores, too."

AI: "As an AI programmer, what really excites me about multi-core is what it means for the AI potential. In the case of dual core systems, because so much time is spent on rendering, you're better off dedicating both cores to increasing your frame rate. But at a certain point, the frame rate is good enough that increasing it gives diminishing returns to the player. This is why four cores is more interesting than just two - it gives us the power to create new experiences."

Multi-core in the Source Engine Real applications Multi-core in the Source Engine Real applications
"One of the things we can do is richer path-finding. Prior to running a map, there's a set of heuristics that dictate how the AI does its path finding. This is an easy approach, but it sacrifices any kind of dynamic elements in doing so. Given multiple cores, you can start having path finding systems where the underlying structures are asynchronously feeding in changes to the world and giving AI a better idea of what the world looks like at that moment - giving characters that move through the world more realistically and are less prone to moving stupid because a table has been dropped in front of them."

Multi-core in the Source Engine Real applications Multi-core in the Source Engine Real applications
We went on to hear that deeper tactical analysis is likely to result. "We can write code that performs deeper tactical queries without impacting the frame rate."

Then there's the issue of not just doing current things better, but doing new things, too. "Assume you're going to have lots of cores - what kinds of new AI might you make?"

Gabe Newell adds: "One of the things that happens when you give developers more CPU is they say - 'let's go and burn it'. We wanted to go beyond rendering and reach into the game experience."
Discuss this in the forums
YouTube logo
MSI MPG Velox 100R Chassis Review

October 14 2021 | 15:04